package com.ruoyi.project.modules.interfaceinfo.vo;

import com.ruoyi.project.modules.table.domain.FieldStatus;
import com.ruoyi.project.modules.virtualUsageParamSource.domain.VirtualUsageParamSource;
import lombok.Data;

import java.util.List;

/**
 * TODO
 *
 * @author chenxiaoyu
 * @version 1.0
 * @date 2021/10/30 下午9:04
 */
@Data
public class InterfaceParam {
    /**
     * 接口与字段 中间表id
     */
    private Long id;
    private Long parentId = 0L;
    private Long fieldId;
    private String fieldName;
    private String fieldEnName;
    private String fieldDataType;
    private Object mockData;
    /**
     * 参数类型 1-字段 2-数据集
     */
    private String objectType = "1";

    private Integer sortNum;
    /**
     * 参数集和字段ID 中间表id
     */
    private Long subId;

    /**
     * 数据关联类型 1-接口下数据集及字段表 2-数据集下面字段关系
     */
    private String dataRelationType;

    /**
     * 关联状态ID（只有字段是状态类型，关联其中一个状态ID（针对BFF）
     */
    private Long statusId;

    /**
     * 关联来自数据集下面字段关系ID（只有实体用况Dubbo为空）
     */
    private Long dataRelationId;

    private List<InterfaceParam> children;

    private List<FieldStatus> fieldStatusList;

    /**
     * 字段枚举集合名称
     */
    private String fieldEnumListName;

    /**
     * 关联状态名称
     */
    private String statusName;

    private String operate;

    private String nodeType;

    private String tableEnName;

    private String tableName;

    private String isRequired;

    private String isRequiredParent;

    private String fieldDescription;

    private String designContent;

    private String isUpdate;

    private String orderType;

    private String objectDtoName;
    private String aliasName;
    private String aliasZhName;
    private String sourceFlag;
    private Long sourceProcessBranchId;
    private String isFieldEnum;
    private String paramsName;
    private String conditionWay;
    private List<VirtualUsageParamSource> virtualUsageParamSources;

    private Long virtualUsageGroupId;

    private Long dictId;
    private Long interfaceId;
    private String type;

    private String frontFieldSource;
    private String frontFieldRemark;
    private String isTree;
    private String isAllowEmpty;
    private String treeModel;
    private String otherModel;
    private String fieldType;
    private String mergeFlag;
    private Long mergeId;
    private String dictValue;
    private String dictType;
    private String fieldIsRequired;
    private String errorCode;
}
